 /******************\
|   *** pile.h ***   |
 \******************/

/*Fichier definissant la structure de donnees Pile (LIFO (Last In First Out))
**se basant sur une liste simplement chainee (presentee sur la verticale)*/

#ifndef PILE_H
#define PILE_H
#include <stdio.h>
#include <stdlib.h>

//Definition struct Element representant les elements de la pile
typedef struct ElementPile{
	//donnees de l'element de la pile
	void *donnee;
	//pointeur sur l'element de la pile suivant
	struct ElementPile *elemSuivant;
}Element;


//Definition struct Pile representant la pile
typedef struct Pile{
	//adresse du premier element de la liste (pile)
	Element *premierElem;
	//nombre d'elements de la liste (pile)
	int taille;
}Pile;

/*
***PROTOTYPE DES FONCTIONS pile.c
*/

Pile* creerPile();
void empiler(Pile *p, void *);
void depiler(Pile *p);
void freePile(Pile *p,Element *e);
void affiche(Pile *p);

#endif /*PILE_H*/
